package com.example.entity.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.example.entity.BaseData;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 作者:xuSen
 * 日期2025/4/13 18:06
 * Account类代表系统中的用户账户信息，是用户数据的实体类
 * 它映射到数据库中的"db_account"表，利用MyBatis-Plus框架的特性进行数据持久化操作
 */
@Data
@TableName("db_account")
@AllArgsConstructor
@Builder
@NoArgsConstructor
public class Account implements BaseData {
    /**
     * 用户ID，作为数据库表中的主键，自动递增
     * 使用IdType.AUTO指定ID生成策略为数据库ID自增
     */
    @TableId(type = IdType.AUTO)
    Integer id;

    /**
     * 用户名，用于用户登录和标识用户身份
     */
    String username;

    /**
     * 用户密码，用于验证用户身份
     */
    String password;

    /**
     * 用户邮箱，可用于用户注册、找回密码等功能
     */
    String email;

    /**
     * 用户角色，标识用户的权限级别，例如管理员、普通用户等
     */
    String role;
    /**
     * 用户头像，用于显示用户头像
     */
    String avatar;

    /**
     * 用户注册时间，记录用户账户创建的时间
     */
    Date registerTime;
}

